package br.com.sisat.service;

import java.util.List;

import br.com.sisat.modelo.AgendaDTO;
import br.com.sisat.modelo.ConsultaDTO;
import br.com.sisat.modelo.EspecialidadeDTO;
import br.com.sisat.modelo.HorarioAtendimentoDTO;
import br.com.sisat.modelo.TerapeutaDTO;
import br.com.sisat.persistencia.DAO.AgendaDAO;
import br.com.sisat.persistencia.DAO.HorarioAtendimentoDAO;
import br.com.sisat.persistencia.DAO.ProntuarioDAO;
import br.com.sisat.util.ObjectUtil;

public class AgendaService  {

	private static AgendaService service;
	
	public static AgendaService getInstance(){
		if(ObjectUtil.isEmpty(service)){
			service = new AgendaService();
		}
		return service;
	}
	
	public List<ConsultaDTO> consultar(AgendaDTO agenda) {
		try {
			return AgendaDAO.getInstance().consultar(agenda);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public List<EspecialidadeDTO> recuperarEspecialidades() {
		try {
			return AgendaDAO.getInstance().recuperarEspecialidades();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public List<TerapeutaDTO> recuperarTerapeutas(Long idEspecialidade) {
		try {
			return AgendaDAO.getInstance().recuperarTerapeutas(idEspecialidade);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public List<TerapeutaDTO> recuperarTerapeutas() {
		try {
			return AgendaDAO.getInstance().recuperarTerapeutas();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	public List<HorarioAtendimentoDTO> consultarHorarios(AgendaDTO agenda) {
		try {
			return HorarioAtendimentoDAO.getInstance().consultar(agenda);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
	
	public void excluirConsulta(HorarioAtendimentoDTO horarioDTO) {
		try {
			AgendaDAO.getInstance().excluirConsulta(horarioDTO);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void mostraCombo(HorarioAtendimentoDTO horario) throws Exception {
		AgendaDAO.getInstance().mostraCombo(horario);
		
	}

	public void atualizaStatus(HorarioAtendimentoDTO horario) throws Exception {
		ProntuarioDAO.getInstance().atualizaStatus(horario.getIdConsulta(), horario.getNuStatus());
		AgendaDAO.getInstance().mostraCombo(horario);
	}
	
}
